# 导入必要的库和模块
import pickle
import gradio as gr
import cv2
# 加载保存的KNN模型，这样我们可以使用预训练的模型进行预测
with open('best_knn_model.pkl', 'rb') as f:
    model = pickle.load(f)

# 定义预测函数，这个函数将用于Gradio接口进行预测
def predict(a):
    try:
        a = cv2.resize(a, (8, 8))
        predicted_digit = model.predict([a.flatten()])[0]
        return str(predicted_digit)
    except:
        return '无'
# 创建Gradio接口，这个接口将用于用户输入和显示预测结果

interface = gr.Interface(predict,
                         inputs='sketchpad',
                         outputs='text',
                         live=True)
# 启动Gradio接口，用户可以通过这个接口进行交互
interface.launch()
